/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.edu.upc.dew.dao;



import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import pe.edu.upc.dew.model.Venta;
import pe.edu.upc.dew.util.JdbcUtils;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import pe.edu.upc.dew.model.Local;
import pe.edu.upc.dew.model.Paquete;
import pe.edu.upc.dew.model.Reporte;




/**
 *
 * @author jcastillo
 */

public class ReporteDAOImpl implements ReporteDAO {
   @Override
      public List<Reporte> consultReporte(Integer codPaquete, Integer codLocal, Date fec_Ini_R, Date fec_Fin_R) {
       List<Reporte> reportes = new ArrayList<Reporte>();
       Reporte r = null;
      try {
            Connection conn = JdbcUtils.getConnection();

            CallableStatement cst = null;
            String sql = "call GIMNASIO_DEW.SP_REPORTE_VENTAS(?,?,?,?)";
            cst = conn.prepareCall(sql);
            cst.setInt(1, codLocal);
            cst.setInt(2, codPaquete);
            cst.setDate(3, fec_Ini_R);
            cst.setDate(4, fec_Fin_R);
            
            ResultSet rs = cst.executeQuery();
            while(rs.next()){
                r = new Reporte();
                r.setLocal(new Local());
                r.getLocal().setNombre(rs.getString("nom_local"));
                r.setPaquete(new Paquete());
                r.getPaquete().setNombre(rs.getString("nom_paquete"));
                r.setMatriculados(rs.getInt("cantidad"));
                r.setMonto(rs.getDouble("monto"));
                reportes.add(r);
            }
            
        } catch (SQLException ex) {
            Logger.getLogger(VentasDAOImpl.class.getName()).log(Level.SEVERE, null, ex);
        }catch (IllegalStateException iex){
            System.out.println("NO SE PUDO CONECTAR A LA BD:"+iex.getMessage());
        }
        return reportes;
    }
}



  




